home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
amok_lha
/
amok58.lha
/
QSort
/
QSort.def
next >
Wrap
Text File
|
1993-08-15
|
3KB
|
81 lines
(*------------------------------------------------------------------)
:Program. QSort (QuickSort-Algorithmus)
:Author. Philippe Gressly (PHILU)
:Address. Näfenhaus, CH-8926 Kappel a/Albis
:History V0.99 (1.8.91)
:Update.
:Copyright. PD
:Language. Modula-II
:Translator. M2Amiga
:Imports.
:Support.
:Bugs.
:Contents. Die Prozedur (QSort) zum sortieren von Arrays.
:Remark.
:Usage. (zB. CLI-Befehle)
(------------------------------------------------------------------*)
DEFINITION MODULE QSort;
TYPE GREATERTHAN = PROCEDURE(LONGINT, LONGINT):BOOLEAN;
(* Nr1, Nr2 *)
(* Die Prozedur gibt TRUE zurück, wenn das Element an der Stelle
* Nr1 echt größer als das Element an der Stelle Nr2 ist.
*
* Beispiel:
* RETURN Array[Nr1] > Array[Nr2]
*
* Diese Prozedur muß selbst geschrieben werden.
*)
TYPE SWAP = PROCEDURE(LONGINT, LONGINT);
(* Nr1, Nr2 *)
(* Die Prozedur soll das Element an der Stelle Nr1 mit dem
* Element an der Stelle Nr2 vertauschen.
*
* Beispiel:
* t := Array[Nr1];
* Array[Nr1] := Array[Nr2];
* Array[Nr2] := t;
*
* Auch diese Prozedur muß selber geschrieben werden.
*)
(*--V00.99--> P R O C E D U R E <------[1.8.91]------[Philu]------)
| Name : QSort
| Input : start, end: LONGINT; (* Woher bis wohin im Array soll
| * sortiert werden.
| *)
| ACHTUNG: "start" muß kleiner oder gleich "end" sein!!
| Es wird im anderen Fall gar nichts ausgeführt.
| Es wird aber nicht etwa von end bis start sortiert!
|
| gt: GREATERTHAN; (* Prozedur, die die Elemente vergleicht *)
| swp: SWAP ; (* Prozedur, die die Elemente vertauscht *)
| Proc : Die Procedur sortitert alles. Jedoch die beiden Proceduren
| zum Vergleichen und zum Vertauschen von Elementen müssen
| selbst geschrieben werden. Somit kann der QSort auch
| beliebige Arrays of Strings, oder of Records sortieren.
| Global : none
| Special :
| Example : Es liegt das Beispiel QSortTest bei.
| Update :
| Bugs : noch keine aufgetreten.
| See also:
+------------------------------------------------------------------*)
PROCEDURE QSort(start, end: LONGINT; gt: GREATERTHAN; swp: SWAP);
END QSort.def